/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package beans;

import general.util.EntitiesValidation;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import jpa.controller.EmpresaJpaController;
import jpa.entity.Empresa;

/**
 *
 * @author isaias
 */
@ManagedBean
@ViewScoped
public class EmpresaBean {

    private Empresa empresa = new Empresa();
    private Empresa empresaSelected = new Empresa();
    private String filterNameEmpresa = null;
    
    /**
     * Creates a new instance of EmpresaBean
     */
    public EmpresaBean() {
    }

    public List<Empresa> listEmpresas(){
        return new EmpresaJpaController().findEmpresaEntitiesByName(filterNameEmpresa);
    }
    
    public void save(){
        List<String> erros = EntitiesValidation.validateEmpresa(empresa);
        
        if(erros.isEmpty()){
            try {
                new EmpresaJpaController().create(empresa);
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, 
                        "Empresa criada com sucesso!",null));
                empresa = new Empresa();
            } catch (Exception ex) {
              ex.printStackTrace();
              FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Erro ao tentar criar a empresa!", null));
            }
        }else{
            for(String e : erros){
                     FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    e, null));
            }
        }
        
    }
    
    public Empresa getEmpresa() {
        return empresa;
    }

    public void setEmpresa(Empresa empresa) {
        this.empresa = empresa;
    }

    public Empresa getEmpresaSelected() {
        return empresaSelected;
    }

    public void setEmpresaSelected(Empresa empresaSelected) {
        this.empresaSelected = empresaSelected;
    }

    public String getFilterNameEmpresa() {
        return filterNameEmpresa;
    }

    public void setFilterNameEmpresa(String filterNameEmpresa) {
        this.filterNameEmpresa = filterNameEmpresa;
    }
    
    
}
